import { Module } from '@nestjs/common'

// 获取提供者
import { 
  LoggerClassService,
  LoggerService,
  LoggerFactoryService,
 } from './logger.service'

@Module({
  providers: [
    {
      useValue: 'suffix', // 值提供者
      provide: 'SUFFIX',
    },
    {
      useFactory: (args1: string) => { // 工厂函数提供者
        return new LoggerFactoryService(args1)
      },
      inject: ['SUFFIX'], // 当前工厂函数提供者 依赖的提供者 token 令牌组成的数组
      provide: 'StringToken',
    },
    {
      useClass: LoggerClassService, // 类提供者
      provide: LoggerClassService
    },
    LoggerService, // 类提供者 简写
  ],
  exports: [
    'SUFFIX',
    'StringToken',
    LoggerClassService,
    LoggerService,
  ]
})
export class LoggerModule {}
